.TH std::ranges::cartesian_product_view::iterator 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::ranges::cartesian_product_view::iterator \- std::ranges::cartesian_product_view::iterator

.SH Synopsis
   template< bool Const >  (since C++23)
   class /*iterator*/      (exposition only*)

   The return type of cartesian_product_view::begin, and of cartesian_product_view::end
   when the underlying view V is a common_range.

   The type /*iterator*/<true> is returned by the const-qualified overloads. The type
   /*iterator*/<false> is returned by the non-const-qualified overloads.

.SH Member types

   Member type       Definition
   iterator_category std::input_iterator_tag
                       * std::random_access_iterator_tag, if
                         /*cartesian-product-is-random-access*/<Const, First, Vs...> is
                         modeled,
                       * std::bidirectional_iterator_tag, if
   iterator_concept      /*cartesian-product-is-bidirectional*/<Const, First, Vs...> is
                         modeled,
                       * std::forward_iterator_tag, if
                         /*maybe-const*/<Const, First> models forward_range,
                       * std::input_iterator_tag otherwise
   value_type        std::tuple<ranges::range_value_t</*maybe-const*/<Const, First>>,
                                ranges::range_value_t</*maybe-const*/<Const, Vs>>...>;
                     std::tuple<ranges::range_reference_t</*maybe-const*/<Const,
   reference         First>>,
                                ranges::range_reference_t</*maybe-const*/<Const,
                     Vs>>...>;
                     An implementation-defined signed-integer-like type (maybe the
   difference_type   smallest of such types), which is sufficiently wide to store the
                     product of the maximum sizes of all underlying ranges, if such
                     type exists.
   Parent (private)  /*maybe-const*/<Const, cartesian_product_view>.
                     (exposition-only member type*)

   Data members

   Member object  Definition
   parent_        A pointer of type Parent to the parent cartesian_product_view.
   (private)      (exposition-only member object*)
                  A tuple of iterators to the current underlying elements of type
   current_       std::tuple<ranges::iterator_t</*maybe-const*/<Const, First>>,
   (private)                 ranges::iterator_t</*maybe-const*/<Const, Vs>>...>.
                  (exposition-only member object*)

.SH Member functions

   constructor     constructs an iterator
   (C++23)         \fI(public member function)\fP
   operator*       accesses the element
   (C++23)         \fI(public member function)\fP
   operator[]      accesses an element by index
   (C++23)         \fI(public member function)\fP
   operator++
   operator++(int)
   operator--      advances or decrements the underlying iterator
   operator--(int) \fI(public member function)\fP
   operator+=
   operator-=
   (C++23)
   next            advances the iterator
   (C++23)         (exposition-only member function*)
   prev            decrements the iterator
   (C++23)         (exposition-only member function*)
   distance_from   returns the distance between two iterators
   (C++23)         (exposition-only member function*)

.SH Non-member functions

   operator==  compares the underlying iterators
   operator<=> \fI(function)\fP
   (C++23)
   operator+   performs iterator arithmetic
   operator-   \fI(function)\fP
   (C++23)
   iter_move   casts the result of dereferencing the underlying iterator to its
   (C++23)     associated rvalue reference type
               \fI(function)\fP
   iter_swap   swaps underlying pointed-to elements
   (C++23)     \fI(function)\fP

.SH Example

    This section is incomplete
    Reason: no example

.SH References

     * C++23 standard (ISO/IEC 14882:2023):

     * 26.7.32.3 Class template cartesian_product_view::iterator
       [range.cartesian.iterator]

.SH See also


.SH Category:
     * Todo no example
